package com.yanfan.energy.controller;


import com.yanfan.common.core.domain.AjaxResult;
import com.yanfan.common.core.page.PageDomain;
import com.yanfan.energy.domain.SetEnergyAllocationDTO;
import com.yanfan.energy.service.SetEnergyAllocationService;
import com.yanfan.iot.domain.Device;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 手动设置能源分配(SetEnergyAllocation)表控制层
 *
 * @author makejava
 * @since 2022-10-26 20:32:22
 */
@Api(tags = "手动设置能源分配")
@RestController
@RequestMapping("/energy/setEnergyAllocation")
public class SetEnergyAllocationController {
    /**
     * 服务对象
     */
    @Autowired
    private SetEnergyAllocationService setEnergyAllocationService;

    /**
     * 分页查询
     *
     * @return 查询结果
     */
    @ApiOperation("分页查询查询置能源分配")
    @PostMapping("/findEnergyAllocation")
    //@ApiImplicitParam(name = "equipments", value = "equipments", allowMultiple = true, dataTypeClass = List.class, paramType = "query")
    public AjaxResult findEnergyAllocation(@ApiParam("设备ids") @RequestBody Integer[] equipments) {
        return setEnergyAllocationService.findEnergyAllocation(equipments);
    }

    /**
     * 能源分配管理分页查询[移动端]
     *
     * @return 查询结果
     */
    @ApiOperation("能源分配管理分页查询[移动端]")
    @PostMapping("/findEnergyAllot")
    public AjaxResult findEnergyAllocation(@ApiParam("分页参数") @RequestBody PageDomain pageDomain) {
        return setEnergyAllocationService.findEnergyAllot(pageDomain);
    }

    /**
     * 编辑数据
     *
     * @param setEnergyAllocationdto 实体
     * @return 编辑结果
     */
    @ApiOperation("修改能源分配")
    @PutMapping("/edit")
    public AjaxResult edit(@ApiParam("能源单价对象") @RequestBody SetEnergyAllocationDTO setEnergyAllocationdto) {
        return setEnergyAllocationService.update(setEnergyAllocationdto);
    }

    @ApiOperation("修改能源分配的集合信息")
    @PutMapping("/editList")
    public AjaxResult editList(@ApiParam("能源单价对象") @RequestBody List<SetEnergyAllocationDTO> setEnergyAllocationdto) {
        return setEnergyAllocationService.editList(setEnergyAllocationdto);
    }

    /**
     * 分页查询
     *
     * @return 查询结果
     */
    @ApiOperation("新增")
    @PostMapping("/add")
    public AjaxResult add(@ApiParam("能源单价对象") @RequestBody SetEnergyAllocationDTO setEnergyAllocationdto) {
        return setEnergyAllocationService.add(setEnergyAllocationdto);
    }


    /**
     * 删除数据
     *
     * @param id 主键
     * @return 删除是否成功
     */
    @ApiOperation("删除能源分配")
    @DeleteMapping("/deleteById")
    public AjaxResult deleteById(Integer id) {
        return setEnergyAllocationService.deleteById(id);
    }

    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @ApiOperation("查询能源分配按id")
    @GetMapping("{id}")
    public AjaxResult queryById(@PathVariable("id") Integer id) {
        return setEnergyAllocationService.queryById(id);
    }

    /**
     * 查询能源类型
     *
     * @return 单条数据
     */
    @ApiOperation("查询能源分配管理左侧")
    @GetMapping("/showEnergyType")
    public AjaxResult queryById(@ApiParam("设备") Device device) {
        return setEnergyAllocationService.showEnergyType(device);
    }


    /**
     * 查询能源类型
     *
     * @return 单条数据
     */
    @ApiOperation("查询能源类型下拉")
    @GetMapping("/showType")
    public AjaxResult queryById() {
        return setEnergyAllocationService.showType();
    }


}

